Package de.yaams.maker

Source Code of de.yaams.maker.Start

/**
*
*/
package de.yaams.maker;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.UIManager;

import org.apache.commons.lang.SystemUtils;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.spi.LoggingEvent;

import de.yaams.maker.helper.Log;
import de.yaams.maker.helper.Setting;
import de.yaams.maker.helper.gui.AE;
import de.yaams.maker.helper.gui.YEx;
import de.yaams.maker.helper.gui.YMessagesDialog;
import de.yaams.maker.helper.gui.icons.IconCache;
import de.yaams.maker.helper.gui.start.YWindowStart;
import de.yaams.maker.helper.language.I18N;
import de.yaams.maker.helper.language.T;
import de.yaams.maker.helper.wizard.WizardErrorPage;
import de.yaams.maker.helper.wizard.WizardManagement;
import de.yaams.maker.programm.YAamsCore;
import de.yaams.maker.programm.YaFrame;
import de.yaams.maker.programm.favorit.FavoritManagement;
import de.yaams.maker.programm.plugins.PluginPlugin;
import de.yaams.maker.programm.project.ProjectManagement;
import de.yaams.maker.programm.project.ProjectTabEvent;
import de.yaams.maker.programm.tabs.BasicTabEvent;

/**
* @author Nebli
*
*/
public class Start {

  public static YMessagesDialog mess;

  /**
   * @param args
   */
  public static void main(String[] args) {
    // Set System L&F
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (final Throwable t) {
      Log.ger.info("Can not set Look and Feel", t);
    }

    try {
      new Start();
    } catch (final Throwable t) {
      YEx.lastExit("Can not run program", t);
    }

  }

  /**
   * Start it
   */
  public Start() {

    // check startmode
    if (Setting.getSystemPreferences().getInt("startmode", 0) == 0) {
      YAamsCore.startmode = 0;
      Setting.getSystemPreferences().putInt("startmode", 1);
      Setting.saveSystemPreferences();
    } else {
      YAamsCore.startmode = 1;
      WizardManagement.addPage(new WizardErrorPage());
    }

    // basics
    T.init();
    com.jidesoft.utils.Lm.verifyLicense("Steffen Trutz", "YAams", "90DijknROE1VxT0qJcWahMoqa5knNr2");
    mess = new YMessagesDialog(T.r("start.error", YAamsCore.TITLE), "yaams.start");
    IconCache.init(mess);
    YAamsCore.init(mess);

    // set wizard
    WizardManagement.start(new AE() {

      @Override
      public void run() {
        Setting.saveSystemPreferences();
        Start.this.run(mess);

      }
    });
  }

  public void run(YMessagesDialog mess) {

    // has java6?
    if (!SystemUtils.IS_JAVA_1_6) {
      mess.add(T.r("start.java", SystemUtils.JAVA_VERSION), Level.ERROR_INT);
    }

    final YWindowStart y = new YWindowStart();

    // add log
    final AppenderSkeleton aps = addLog(y);

    // load rest
    I18N.init();
    T.addOptions();
    YaFrame.init();
    YaFrame.registerTab(new BasicTabEvent());
    YaFrame.registerTab(new ProjectTabEvent());
    ProjectManagement.start();
    FavoritManagement.init();

    // error test
    // YEx.error("title", new Throwable("test2"));

    // add plugins
    PluginPlugin.start(mess);

    // Get the current screen size & check it
    Dimension scrnsize = Toolkit.getDefaultToolkit().getScreenSize();
    if (scrnsize.getWidth() < 1024 || scrnsize.getHeight() < 768) {
      mess.add(T.r("start.window", YAamsCore.NAME, scrnsize.getWidth(), scrnsize.getHeight()), Level.INFO_INT);
    }
    Log.ger.info("Calc for Screen: " + scrnsize.getWidth() + "x" + scrnsize.getHeight());

    // check ram
    if (Runtime.getRuntime().maxMemory() < 1024 * 1024 * 242) {
      mess.add(T.r("start.memory", YAamsCore.NAME, Runtime.getRuntime().maxMemory() / (1024 * 1024)), Level.INFO_INT);
    }

    // check Beta
    if (YAamsCore.BETA) {
      mess.add(T.r("start.beta"), Level.WARN_INT);
    }

    if (mess.getLevel() == Level.INFO_INT) {
      // exist system?
      if (mess.setTitle(T.r("start.welcome", YAamsCore.NAME)).showOk()) {
        YaFrame.get().start();
      }
    } else {
      // exist system?
      if (mess.setFooter(T.r("dialog.ignore")).showQuestion()) {
        YaFrame.get().start();
      }
    }

    // remove log & savemode
    Log.ger.removeAppender(aps);
    Setting.getSystemPreferences().putInt("startmode", 0);
    Setting.saveSystemPreferences();
    y.close();

  }

  /**
   * Helpermethod to show the message
   *
   * @param y
   * @return
   */
  protected AppenderSkeleton addLog(final YWindowStart y) {
    AppenderSkeleton a = new AppenderSkeleton() {

      @Override
      public boolean requiresLayout() {
        return false;
      }

      @Override
      public void close() {

      }

      @Override
      protected void append(LoggingEvent le) {
        try {
          y.setNote(le.getMessage().toString());
        } catch (Throwable t) {
        }
      }
    };
    Log.ger.addAppender(a);

    return a;
  }

}
TOP

Related Classes of de.yaams.maker.Start

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.